package com.fjwt.gz.db.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 异步执行导出报表任务表
 * </p>
 *
 * @author wangjie
 * @since 2025-07-18
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_sys_export_task")
public class SysExportTaskEntity implements Serializable {

    public static LambdaQueryWrapper<SysExportTaskEntity> gw(){
        return new LambdaQueryWrapper<>();
    }

    /**
     * 主键
     */
    @TableId(value = "export_task_id", type = IdType.AUTO)
    private Long exportTaskId;

    /**
     * 流水编号：DONO+时间戳
     */
    private String serialNo;

    /**
     * 发起用户名称
     */
    private String userName;

    /**
     * 资源类型:  商户信息数据、机构信息数据、活动数据、小程序用户数据
     */
    private String resourceType;

    /**
     * 生成的文件名(含扩展名)，如：“活动编号”+“活动名称”+基础数据报表
     */
    private String fileName;

    /**
     * 文件类型
     */
    private String fileType;

    /**
     * 下载通道（定义接口：IExportReport：exportReport）
     */
    private String requestCode;

    /**
     * 请求参数
     */
    private String requestParam;

    /**
     * 开始处理时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;

    /**
     * 完成时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date completedTime;

    /**
     * 文件大小(字节)
     */
    private Long fileSize;

    /**
     * 下载URL（OSS）
     */
    private String downloadUrl;

    /**
     * 状态：等待执行、正在处理、执行成功、执行失败、已取消
     */
    private String status;

    /**
     * 错误信息
     */
    private String errorMsg;

    /**
     * 系统平台
     */
    private String sysType;

    /**
     * 所属商户(机构)ID / 0(平台)
     */
    private String belongInfoId;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createdAt;

    /**
     * 更新建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updatedAt;

    /**
     * 创建者id
     */
    private Long createdUid;


}
